<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="Keywords" content="">
    <title></title>
  </head>
  <body>
    
  </body>
</html>
<script>
  //创建Father构造函数
  function Father(name) {
    this.name = name
    }  
  //在prototype属性上绑定的方法叫做实例方法，意思就是所有new出来的实例都可以调用的方法
  Father.prototype.sayHello = function () {
    console.log('hello',this.name);
    }
  //静态方法：直接给在构造函数上绑定的方法就叫做静态方法，这个方法只能通过构造函数去调用
  Father.sayHi = function () {  
    console.log('hi');
  }
  //创建实例通过new关键字创建
  let fa = new Father('jack')
  fa.sayHello()
  Father.sayHi()

  function Son(name) {  
    this.name = name
  }

  //目的：想要这个son实例能够去调用Father原型上的sayHi方法
  //方法：改变构造函数的原型指向
  Son.prototype = fa
  let son = new Son('Bill')
  son.sayHello()
</script>